package com.erp.erp_entitys.ShipmentPlan;

import com.fasterxml.jackson.annotation.JsonFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 出运计划主表
 * 
 * @date 2021-01-10
 */
public class ShipmentPlan {
    /**
     * 主键
     */
    private Integer id;

    /**
     * 客户编码
     */
    private String customerCode;
    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 联系人
     */
    private String contactPerson;

    /**
     * 出运计划编号
     */
    private String shipmentNo;

    /**
     * 出运日期
     */
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date shipmentDate;

    /**
     * 币种
     */
    private String currency;

    /**
     * 人民币汇率
     */
    private BigDecimal rmbRate;

    /**
     * 美元汇率
     */
    private BigDecimal usdRate;

    /**
     * 运抵国
     */
    private String targetCountry;

    /**
     * 起运地(数据字典)
     */
    private String startPlace;

    /**
     * 目的地(数据字典)
     */
    private String endPlace;

    /**
     * 转船运输
     */
    private String transhipment;

    /**
     * 运输方式
     */
    private String transMode;

    /**
     * 签约公司编码
     */
    private String companyCode;

    /**
     * 收款类型(数据字典)
     */
    private String paymentTerm;

    /**
     * 价格术语(数据字典)
     */
    private String priceTerm;

    /**
     * 发票总额
     */
    private BigDecimal invoiceAmount;

    /**
     * 制单时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date makeTime;

    /**
     * 销售合同号
     */
    private String salesContractNo;

    /**
     * 客户合同号
     */
    private String customerContractNo;

    /**
     * 业务模式
     */
    private String businessMode;

    /**
     * 货号日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    private Date proFinishDate;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 仓库
     */
    private String stock;

    /**
     * 箱型
     */
    private String boxType;

    /**
     * 客户账期
     */
    private String payDay;

    /**
     * 报关抬头(数据字典)
     */
    private String declareCompany;

    /**
     * 银行编码
     */
    private String bankCode;

    /**
     * 操作员编码
     */
    private String executorCode;
    /**
     * 操作员名称
     */
    private String executorName;
    /**
     * 业务员编码
     */
    private String salesmanCode;
    /**
     * 业务员名称
     */
    private String salesmanName;
    /**
     * 审核状态
     */
    private String boxStatus;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 编辑时间
     */
    private Date editTime;

    private String flag;

    /**
     * 客户等级名称
     */
    private String customerLevelName;
    /**
     * 客户等级编码
     */
    private String customerLevelCode;

    /**
     * 货柜数量
     */
    private Integer containerNum;
    /**
     * 货柜型号
     */
    private String containerType;
    /**
     * 货柜型号编码
     */
    private String containerTypeCode;
    /**
     * 是否走信保订单(0:否 1:是)
     */
    private Integer whetherCreditGuarantee;

    /**
     * 信保订单金额USD
     */
    private BigDecimal creditGuaranteeAmount;

    public String getExecutorName() {
        return executorName;
    }

    public void setExecutorName(String executorName) {
        this.executorName = executorName;
    }

    public String getSalesmanName() {
        return salesmanName;
    }

    public void setSalesmanName(String salesmanName) {
        this.salesmanName = salesmanName;
    }

    public Integer getWhetherCreditGuarantee() {
        return whetherCreditGuarantee;
    }

    public void setWhetherCreditGuarantee(Integer whetherCreditGuarantee) {
        this.whetherCreditGuarantee = whetherCreditGuarantee;
    }

    public BigDecimal getCreditGuaranteeAmount() {
        return creditGuaranteeAmount;
    }

    public void setCreditGuaranteeAmount(BigDecimal creditGuaranteeAmount) {
        this.creditGuaranteeAmount = creditGuaranteeAmount;
    }

    public Integer getContainerNum() {
        return containerNum;
    }

    public void setContainerNum(Integer containerNum) {
        this.containerNum = containerNum;
    }

    public String getContainerType() {
        return containerType;
    }

    public void setContainerType(String containerType) {
        this.containerType = containerType;
    }

    public String getContainerTypeCode() {
        return containerTypeCode;
    }

    public void setContainerTypeCode(String containerTypeCode) {
        this.containerTypeCode = containerTypeCode;
    }

    public String getCustomerLevelName() {
        return customerLevelName;
    }

    public void setCustomerLevelName(String customerLevelName) {
        this.customerLevelName = customerLevelName;
    }

    public String getCustomerLevelCode() {
        return customerLevelCode;
    }

    public void setCustomerLevelCode(String customerLevelCode) {
        this.customerLevelCode = customerLevelCode;
    }

    public String getFlag() {
        return flag;
    }

    public void setFlag(String flag) {
        this.flag = flag;
    }

    private List<ShipmentPlanProduct> productList;//产品列表
    private List<ShipmentPlanCost> costList;//费用 列表
    private List<ShipmentPlanFile> fileList;//附件列表


    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode == null ? null : customerCode.trim();
    }

    public String getContactPerson() {
        return contactPerson;
    }

    public void setContactPerson(String contactPerson) {
        this.contactPerson = contactPerson == null ? null : contactPerson.trim();
    }

    public String getShipmentNo() {
        return shipmentNo;
    }

    public void setShipmentNo(String shipmentNo) {
        this.shipmentNo = shipmentNo == null ? null : shipmentNo.trim();
    }

    public Date getShipmentDate() {
        return shipmentDate;
    }

    public void setShipmentDate(Date shipmentDate) {
        this.shipmentDate = shipmentDate;
    }

    public String getCurrency() {
        return currency;
    }

    public void setCurrency(String currency) {
        this.currency = currency == null ? null : currency.trim();
    }

    public BigDecimal getRmbRate() {
        return rmbRate;
    }

    public void setRmbRate(BigDecimal rmbRate) {
        this.rmbRate = rmbRate;
    }

    public BigDecimal getUsdRate() {
        return usdRate;
    }

    public void setUsdRate(BigDecimal usdRate) {
        this.usdRate = usdRate;
    }

    public String getTargetCountry() {
        return targetCountry;
    }

    public void setTargetCountry(String targetCountry) {
        this.targetCountry = targetCountry == null ? null : targetCountry.trim();
    }

    public String getStartPlace() {
        return startPlace;
    }

    public void setStartPlace(String startPlace) {
        this.startPlace = startPlace == null ? null : startPlace.trim();
    }

    public String getEndPlace() {
        return endPlace;
    }

    public void setEndPlace(String endPlace) {
        this.endPlace = endPlace == null ? null : endPlace.trim();
    }

    public String getTranshipment() {
        return transhipment;
    }

    public void setTranshipment(String transhipment) {
        this.transhipment = transhipment == null ? null : transhipment.trim();
    }

    public String getTransMode() {
        return transMode;
    }

    public void setTransMode(String transMode) {
        this.transMode = transMode == null ? null : transMode.trim();
    }

    public String getCompanyCode() {
        return companyCode;
    }

    public void setCompanyCode(String companyCode) {
        this.companyCode = companyCode == null ? null : companyCode.trim();
    }

    public String getPaymentTerm() {
        return paymentTerm;
    }

    public void setPaymentTerm(String paymentTerm) {
        this.paymentTerm = paymentTerm == null ? null : paymentTerm.trim();
    }

    public String getPriceTerm() {
        return priceTerm;
    }

    public void setPriceTerm(String priceTerm) {
        this.priceTerm = priceTerm == null ? null : priceTerm.trim();
    }

    public BigDecimal getInvoiceAmount() {
        return invoiceAmount;
    }

    public void setInvoiceAmount(BigDecimal invoiceAmount) {
        this.invoiceAmount = invoiceAmount;
    }

    public Date getMakeTime() {
        return makeTime;
    }

    public void setMakeTime(Date makeTime) {
        this.makeTime = makeTime;
    }

    public String getSalesContractNo() {
        return salesContractNo;
    }

    public void setSalesContractNo(String salesContractNo) {
        this.salesContractNo = salesContractNo == null ? null : salesContractNo.trim();
    }

    public String getCustomerContractNo() {
        return customerContractNo;
    }

    public void setCustomerContractNo(String customerContractNo) {
        this.customerContractNo = customerContractNo == null ? null : customerContractNo.trim();
    }

    public String getBusinessMode() {
        return businessMode;
    }

    public void setBusinessMode(String businessMode) {
        this.businessMode = businessMode == null ? null : businessMode.trim();
    }

    public Date getProFinishDate() {
        return proFinishDate;
    }

    public void setProFinishDate(Date proFinishDate) {
        this.proFinishDate = proFinishDate;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand == null ? null : brand.trim();
    }

    public String getStock() {
        return stock;
    }

    public void setStock(String stock) {
        this.stock = stock == null ? null : stock.trim();
    }

    public String getBoxType() {
        return boxType;
    }

    public void setBoxType(String boxType) {
        this.boxType = boxType == null ? null : boxType.trim();
    }

    public String getPayDay() {
        return payDay;
    }

    public void setPayDay(String payDay) {
        this.payDay = payDay == null ? null : payDay.trim();
    }

    public String getDeclareCompany() {
        return declareCompany;
    }

    public void setDeclareCompany(String declareCompany) {
        this.declareCompany = declareCompany == null ? null : declareCompany.trim();
    }

    public String getBankCode() {
        return bankCode;
    }

    public void setBankCode(String bankCode) {
        this.bankCode = bankCode == null ? null : bankCode.trim();
    }

    public String getExecutorCode() {
        return executorCode;
    }

    public void setExecutorCode(String executorCode) {
        this.executorCode = executorCode == null ? null : executorCode.trim();
    }

    public String getSalesmanCode() {
        return salesmanCode;
    }

    public void setSalesmanCode(String salesmanCode) {
        this.salesmanCode = salesmanCode == null ? null : salesmanCode.trim();
    }

    public String getBoxStatus() {
        return boxStatus;
    }

    public void setBoxStatus(String boxStatus) {
        this.boxStatus = boxStatus == null ? null : boxStatus.trim();
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getEditTime() {
        return editTime;
    }

    public void setEditTime(Date editTime) {
        this.editTime = editTime;
    }

    public List<ShipmentPlanProduct> getProductList() {
        return productList;
    }

    public void setProductList(List<ShipmentPlanProduct> productList) {
        this.productList = productList;
    }

    public List<ShipmentPlanCost> getCostList() {
        return costList;
    }

    public void setCostList(List<ShipmentPlanCost> costList) {
        this.costList = costList;
    }

    public List<ShipmentPlanFile> getFileList() {
        return fileList;
    }

    public void setFileList(List<ShipmentPlanFile> fileList) {
        this.fileList = fileList;
    }
}